package com.example.code_block;

public class staticTest {
    public static void main(String[] args) {
        StaticCodeBlock staticCodeBlock = new StaticCodeBlock("请叫我帅哥");
//        staticCodeBlock.tallHello();
    }

}
class StaticCodeBlock{

    private String name;

    /**
     * 这个是构造方法
     * new 的时候执行
     * @param name
     */
    public StaticCodeBlock(String name) {
        this.name = name;
        System.out.println("构造方法");
    }

    /**
     * 这里是构造代码块
     * new 的时候执行
     */
    {
        System.out.println("构造代码块");
    }

    /**
     * 这里是静态代码块
     * new 的时候执行
     */
    static {
        System.out.println("静态代码块");
    }
    public void tallHello(){
        /**
         * 这里是普通代码块，放到方法里面
         * 执行顺序跟代码在方法里面的位置有关，放在前面，就在前面执行
         */
        {
            System.out.println("普通代码块");
        }
        System.out.println("我是方法:"+name);

    }

}
